<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="hello">
        <cpn1></cpn1>
        <cpn1></cpn1>
        <cpn1></cpn1>
    </div>
    <template id="cpn">
        <div>
            <h5>{{message}}</h5>
            <button @click='change()'>+</button>
        </div>
    </template>
    <script src="../../vue.js"></script>
    <script>
        Vue.component('cpn1',{
            template:'#cpn',
            // 组件里的数据存在data里面
            
            /* 
                为什么data要是一个函数？
                因为每个组件都是独立可复用的
                data函数每次都返回一个匿名对象（地址值都不同）
                所以多次复用组件的时候，修改数据不会造成冲突
            */
            data() {
                return {
                    message:0
                }
            },
            // 组件里的方法存在methods里面
            methods: {
                change(){
                    this.message++;
                }
            },
        })
        const vue01 = new Vue({
            el: '#hello',
        })
    </script>
</body>

</html>